//
//  main.c
//  printf
//
//  Created by jinxin on 2018/10/14.
//  Copyright © 2018 KimRong. All rights reserved.
//

#include <stdio.h>

int main(int argc, const char * argv[]) {

//    printf("%i\n",10);
//
//    printf("%f\n",10.2f);
//
//    printf("%c\n",'a');
//
//    printf("%lf\n",9.9);
//
//    printf("1、指定位宽\n");
    
    /*
    //默认位宽是右对齐，如果需要输出的类型宽度不够，会在左边补空格
    printf("%5i\n",99);
    //在位宽前加上'-'号，会改变对齐方式为左对齐
    printf("%-5i\n",99);
    */
    //位宽的用处：格式化输出字符
    //位宽的坑：如果指定了位宽，但是实际输出的内容超过指定宽度，会按照实际宽度输出
//    int number = 9999;
//    printf("%2i\n",number);
    
    
//    number = 8;
//    printf("%02i\n",number);//位宽前加0，宽度不够会补0输出
    
//    printf("2、保留位数\n");
    
    //%.nf  n是保留多少位小数
//    float floatValue = 3.14;
//    printf("%.2f\n",floatValue);//3.14
    
    //3.%f各种坑
    float floatValue = 3.1415966525;
    printf("%.10f\n",floatValue);//3.1415965557
    //因为float类型的有效位是7位，有效位从第一个数(不是小数)开始，不包括小数点
    
    //如果想完整输出，使用double类型。double类型的有效位是15
    double doubleValue = 3.1415966525;
    printf("%.10lf\n",doubleValue);
    
    return 0;
}
